O7617(CAP 0-90 DEG CORNER FULL RAD. EDGE)
(VARIABLE RADIUS)
(ABSOLUTE SURFACING MACRO)
(START OF TANGENT/ TOP OF PART)
(END OF TANGENT/ SIDE OF EDGE)
(X0 Y0 STARTS AT CL OF TOOL)
(WITH TOP CL OF START RADIUS)
(MOVEMENT STARTS WITH VERTICAL)
(AXIS ALONG THETA 0 AND IS ROTATED)
(COUNTERCLOCKWISE 0-360 AROUND X0Y0)
(EXACT MIDDLE OF PART EDGE)
(WORKS)

(FORMAT G65/G66 BCDTQKSRZF)
(B = #2 - G68 ROTATION FROM 0 DEGREES)
(C = #3 - CUSP HEIGHT/ DEG. OF ROTATION) 
(D = #7 - TOOL DIAMETER)
(T = #20 - TOOL RADIUS/ BALL OR BULL)
(Q = #17 - EDGE TOTAL DISTANCE)
(K = #6 - PART CORNER RADIUS/ TOP)
(S = #19 - PART CORNER RADIUS/ BOTTOM)
(R = #18 - R PLANE)
(Z = #26 - Z START ZERO)
(F = #9 - FEEDRATE)
(*********************************)

#100=0
#101=#6+#20
#111=#19+#20
#102=#3
IF[#102GT15.]THEN#102=15.
#102=ROUND[90./#102]
#102=90./#102
#103=#5001
#104=[#103+.1]+[[#7/2]+#6]
IF[#6GT#19]GOTO1
#104=[#103+.1]+[[#7/2]+#19]
N1#120=ABS[[#6-#19]/2]
#123=#103+#120
#133=#103+#120
IF[#6GT#19]THEN#123=#103-#120
IF[#6LT#19]THEN#133=#103-#120
IF[#7EQ[#20*2]]GOTO10
#123=#123+[[#7/2]-#20]
#133=#133+[[#7/2]-#20]
N10#105=#5002
#115=[#105+.1]+[[#7/2]+[#17/2]]
#125=[#105-.1]-[[#7/2]+[#17/2]]
#135=#105+[#17/2]
#145=#105-[#17/2]
#530=#2
IF[#2GT180.]THEN#530=#2-360.
G68R#530
G0G90X#104Y#115
Z[#26+.1]
G1Z#26F#9
#106=#5003-#101
#116=#5003-#111
WHILE[#100LE90.]DO1
IF[#100GT90.]GOTO100
#107=#123+[SIN[#100]*[#101]]
#108=#106+[COS[#100]*[#101]]
#117=#133+[SIN[#100]*[#111]]
#118=#116+[COS[#100]*[#111]]
#100=#100+#102
G1Z#108F#9
G41X#107
Y#135
X#117Y#145Z#118
Y#125
G0G40X[#117+.1]
IF[#100GT90.]GOTO100
#107=#123+[SIN[#100]*[#101]] 
#108=#106+[COS[#100]*[#101]]
#117=#133+[SIN[#100]*[#111]]
#118=#116+[COS[#100]*[#111]] 
#100=#100+#102
G1Z#118
G42X#117
Y#145
X#107Y#135Z#108
Y#115
G0G40X[#107+.1]
END1
N100G0G90Z#18
G69
X#103Y#105
M99
